iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 11
0
Google Developers Machine Learning

初心者的自我挑戰系列 第 11

Google Study Jam- Launching into machine learning on coursera Module2 - part5

  • 分享至 

  • xImage
  •  

今天繼續學習~
Lab: Practicing with Neural Networks
在這章節主要也是使用google tensorflow playground來了解NN的一些架構和試著調整參數看看會發生甚麼改變.一樣的我認為這個步驟非常值得新手玩玩看,不用寫甚麼程式碼就可以輕易地以視覺化圖形來知道發生甚麼事.

首先你可以調整激活函數(activation function),你可以使用ReLu, sigmoid......
像我就試試看sigmoid在分類的task上其實並不可行,之前也有提到過sigmoid為甚麼不行,原因是他輸出的是0~1之間的數值,是適合用來分類的,而在tensorflow playground中可以輕易看出來訓練是不可行的.

再來你可以增加hidden layer,每層多幾個或是增加多幾層等等,在這邊也非常直觀,你可以用圖案來看大概甚麼hidden layer的feature是幹嘛的,一般來說我們並不能直觀的看出來,甚至在DNN出現之前,許多人致力於尋找有用的features的工作.我們藉由使用hidden layer可以把模型變得非常複雜,而使得它可以勝任更難的Task.

最後我們可以試著調整batch size,之前有提到batch size就是一次丟入多少個訓練的data,我們可以先試試看batch size =1, batch size =10, batch size =30,結果會發現:
batch size =1 的訓練中,loss 會很快的上下起伏,而batch size =30的卻不會,這是為甚麼呢? 原因是因為batch size =1 的case中,每次的參數更新都是依據單個data因此假設有30000個data他就更新30000次,這樣更新次數很多沒錯,但是每次都只根據單個data調整是不夠有代表性的.因此batch size大一點的可視為是參考多一些些data來做參數更新,這樣loss會平緩的下降,而不會忽上忽下,然而也不可以一次丟全部data,我們上一回有提到,這樣太沒效率,更新參數的速度太慢,因此mini batch最好.

最後的最後:Overfiting發生時,代表Model太過擬和data,我們可以想像是一個死背書的考生,只背下來考古題的答案,卻沒有去學習到舉一反三,因此他看過的data他認得,沒看過的甚麼都不會,也就是generalization(泛化)能力不好.

下一回介紹: generalization and sampling


上一篇
Google Study Jam- Launching into machine learning on coursera Module2 - part4
下一篇
Google Study Jam- Launching into machine learning on coursera Module2 - part6
系列文
初心者的自我挑戰30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言